package com.liang.mapper;


import com.liang.pojo.dto.NoticeDto;
import com.liang.pojo.Notice;
import org.apache.ibatis.annotations.Param;

import java.util.List;
/**
 *@作者:lsk
 *DAO接口
 *@Date:2023/10/16
*/
public interface NoticeDAO<T,P> extends MyBaseMapperLSK<T,P>{

	/**
	根据Noticeid查询
	*/
	public Notice selectByNoticeid(@Param("noticeid") Long noticeid);

	/**
	根据Noticeid更新
	*/
	public Integer updateByNoticeid(@Param("bean") T t);

	/**
	根据Noticeid删除
	*/
	public Integer deleteByNoticeid(@Param("noticeid") Long noticeid);



	/**
	 insertlsk:(插入)
	*/
	public Integer insertlsk(@Param("bean") T t);


	/**
	 insertOrUpdatelsk(插入或更新(根据主键或唯一索引更新，主键和唯一索引不会改变))
	*/
	public Integer insertOrUpdatelsk(@Param("bean") T t);


	/**
	 insertBathlsk:(批量插入)
	*/
	public Integer insertBatchlsk(@Param("list") List<T> list);


	/**
	 insertOrUpdateBatchlsk:(批量插入或更新)
	*/
	public Integer insertOrUpdateBatchlsk(@Param("list") List<T> list);


	/**
	 selectListlsk:(根据参数查询集合)
	*/
	public List<T> selectListlsk(@Param("query") P p);


	/**
	 selectCount:(根据集合查询数量)
	*/
	public Long selectCountlsk(@Param("query") P p);

    List<NoticeDto> getNoticeDtos(NoticeDto noticeDto);

	Integer getNoticeDtoCount(@Param("userid") Long user_id);

    List<NoticeDto> getNoticesHistory(NoticeDto noticeDto);

	Integer getNoticesHistoryCounts(NoticeDto noticeDto);

	Integer getNoticeReceiveNum(@Param("noticeid") Long notice_id);

	List<NoticeDto> getSuperiorNotice(NoticeDto noticeDto);

	Integer getSuperiorNoticeCount(NoticeDto noticeDto);
}